home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / btrees2.arc / BTSTACK.C < prev    next >
Text File  |  1984-12-14  |  690b  |  44 lines

  1. /*     btstack        */
  2. #include <stdio.h>
  3. #include <btextern.h>
  4.  
  5. /* stack manipulation routines for the btree system    */
  6.  
  7. #define MAXVAL 50  /* maximum depth of val stack */
  8.  
  9. static int sp = 0;    /* stack pointer */
  10. static int val[MAXVAL]; /* value stack   */
  11.  
  12. int push (f)    /* push f onto value stack */
  13. int f;
  14.  
  15. {
  16.     if (sp < MAXVAL)
  17.         return (val[sp++] = f);
  18.     else    {
  19.         abort ("ERROR: stack full");
  20.         clear ();
  21.         return (0);
  22.     }
  23. }
  24.  
  25. int pop ()        /* pop top value from stack */
  26.  
  27. {
  28.     if (sp > 0)
  29.         return (val[--sp]);
  30.     else    {
  31.         abort ("ERROR: stack empty");
  32.         clear ();
  33.         return (0);
  34.     }
  35. }
  36.  
  37. int clear ()        /* clear stack */
  38.  
  39. {
  40.     sp = 0;
  41.     push (NULL);
  42.     push (NULL);
  43. }
  44.